// 定义关于counter的store
import { defineStore } from 'pinia'
import useUser from './user.js'
// defineStore()返回一个函数，调用这个函数才会返回一个Store
const useCounter=defineStore("counter",{
    state:()=>({
        count:99,
        friends:[
            {id:1,name:"why"},
            {id:2,name:"kobe"},
            {id:3,name:"james"}
        ]
    }),
    getters:{
        // 1.基本使用
        doubleCount(state){
            return state.count*2
        },
        // 2.一个getter引入另外一个getter
        doubleCountAddOne(){
            // this是store实例
            return this.doubleCount+1
        },
        // 3.getters也支持返回一个函数
        getFriendById(state){
            return function(id){ // 调用getFriendById()实际上是调用这里返回的函数
                for(let i=0;i<state.friends.length;i++){
                    const friend=state.friends[i]
                    if(friend.id===id){
                        return friend
                    }
                }
            }
        },
        // 4.getters中用到别的store中的数据
        showMessage(state){
          // 1.获取user信息
          const userStore=useUser()

          // 2.获取自己的信息
          // 3.拼接信息
          return `name:${userStore.name}-count:${state.count}`
        }
    },
    actions:{
        increment(){ // actions没有state参数
            this.count++
        },
        incrementNum(num){
            this.count+=num
        }
    }
})

export default useCounter